什么是内存泄露?
一些对象不再被应用程序使用了,但是GC却不能回收它们,因为还有引用指向它们。
为啥会发生?
当生命周期长的对象(假设叫A)持有一个生命周期短的对象(假设叫B)引用,B没有用时却不能被及时销毁。
如何避免?
注意集合类的使用:HashMap, ArrayList等。当它们被申明为static时,它们的生命周期和应用程序一样长。
注意事件监听和回调。当监听器被注册后,没有用时却没有注销监听器,导致监听器一直存在。
类自己管理内存时,编程者要有内存泄露意识。一个对象的成员变量指向其他对象的引用要置null。